package indi.zhifa.recipe.bailan5.busy.entity.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import indi.zhifa.recipe.bailan.framework.enums.entity.annotations.EnumDesc;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 项目状态
 */
@EnumDesc(name = "可研阶段",desc = "项目可研所处的阶段")
@AllArgsConstructor
public enum EProjectMaterialState {
    /**
     * 草稿状态，项目刚创建时为此状态
     * 该状态可以编辑项目基本信息
     * 管理端
     */
    DRAFT(1,"草稿","草稿"),
    /**
     * 前期工作计划编制，由草稿状态下的项目点击提交，转换而来
     * 该阶段可以编辑前期工作计划
     * 管理端
     */
    PLAN(2,"计划-编制","计划-编制"),
    /**
     * 前期工作计划审核，由前期工作计划发布而来
     * 该阶段可以审核前期工作计划
     * 管理端
     */
    PLAN_REVIEW(3,"计划审核","计划审核"),
    /**
     * 维护中标单位，由计划审核通过后而来
     * 该阶段可以选择供应商，提交后进入下一阶段
     * 管理端
     */
    BIND_PICK(4,"中标","中标"),
    /**
     *  签订可研合同
     *  该阶段签订可研合同，提交后进入下一阶段
     *  供应商端
     */
    SIGNE(5,"签合同","签合同"),
    /**
     * 资料送审阶段
     * 该阶段供应商上传资料，提交后的项目资料，才可被选定入评审计划
     * 供应商端
     */
    MATERIAL_UPLOAD(6,"资料送审","资料送审"),
    /**
     * 评审计划创建阶段
     * 该阶段可以把可进入评审计划的项目加入到某1月的评审计划中
     * 管理端
     */
    REVIEW_PLAN(7,"评审计划","评审计划"),
    /**
     * 资料预审阶段
     * 该阶段管理方可以审核，退回，添加评审意见
     * 提交后进入下一阶段
     * 管理端
     */
    MATERIAL_REVIEW(8,"资料预审","资料预审"),
    /**
     * 工程评审阶段
     * 该阶段是线下评审，可以添加评审意见，上传评审记要，通过与拒绝
     * 提交后进入下一阶段
     * 管理端
     */
    PROJECT_REVIEW(9,"工程评审","工程评审"),
    /**
     * 收口资料阶段
     * 进入该阶段后，生成收口资料实体，咨询意见实体
     * 该阶段让供应商再上传一次，也可以在此时上传咨询意见
     * 只要上传收口资料，就可进入下一阶段
     */
    CONFIRMED_MATERIAL_UPLOAD_AND_ADVICE(10,"收口资料阶段","收口资料阶段"),
    /**
     * 批复阶段
     * 该阶段可上传批复文件，上传后进入下一阶段
     * 批复后，同时生成可研服务评价和可研技术评价
     * 然后项目可研状态变为完成
     */
    PERMIT(11,"批复","批复"),
    /**
     * 项目完成
     */
    WORK(12,"完成","完成");

    @EnumValue
    @Getter
    int code;
    @Getter
    String name;
    @Getter
    String description;
}
